﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using tracker.Models.DTO;
using tracker.Models;
using tracker.Models.DAL;
using System.Collections.Generic;

namespace tracker.Models.BLL
{
    public class DistanceLogBLL : ErpCatalogueBaseBL
    {
        #region STORE DEFINE
        public const string STORE_INSERT = "";
        public const string STORE_UPDATE = "";
        public const string STORE_DELETE = "";
        public const string STORE_SELECT_ALL = "";
        public const string STORE_SELECT_DISTANCELOG = "searchDistanceLogSpot";
        public const string STORE_SELECT_DISTANCELOG2 = "searchDistanceLogSpotReport";
        public const string STORE_SELECT_DISTANCELOG_COUNT = "countsearchDistanceLogSpot";
        public const string STORE_SELECT_MAX_DISTANCELOG = "DistanceLog_GetMaxDistanceLog";
        public const string STORE_SELECT_DISTANCELOG2_COUNT = "countsearchDistanceLogSpotReport";
        
        #endregion

        #region Methods
        /// <summary>
        /// Hàm này thêm mới một ROW thông qua 1 mảng tham số và 1 mảng giá trị với tham số
        /// </summary>
        /// <param name="arrParamName">Array of Parameters</param>
        /// <param name="arrParamValue">Array of Values</param>
        /// <returns>string</returns>
        public static string InsertERP(string[] arrParamName, object[] arrParamValue)
        {
            string strReturn = "0";
            strReturn = Insert(STORE_INSERT, arrParamName, arrParamValue);
            return strReturn;
        }

        /// <summary>
        /// Hàm này update một ROW thông qua 1 mảng tham số và 1 mảng giá trị với tham số
        /// </summary>
        /// <param name="arrParamName">Array of Parameters</param>
        /// <param name="arrParamValue">Array of Values</param>
        /// <returns></returns>
        public static string UpdateERP(string[] arrParamName, object[] arrParamValue)
        {
            string strReturn = "0";
            strReturn = Update(STORE_UPDATE, arrParamName, arrParamValue);
            return strReturn;
        }

        /// <summary>
        /// Hàm này delete ROW thông qua 1 mảng tham số và 1 mảng giá trị với tham số
        /// </summary>
        /// <param name="arrParamName">Array of Parameters</param>
        /// <param name="arrParamValue">Array of Values</param>
        /// <returns></returns>
        public static string DeleteERP(string[] arrParamName, object[] arrParamValue)
        {
            string strReturn = "0";
            strReturn = Delete(STORE_DELETE, arrParamName, arrParamValue);
            return strReturn;
        }

        /// <summary>
        /// Hàm này trả về danh sách các row theo điều kiện đầu vào
        /// </summary>
        /// <param name="arrParamName">Array of Parameters</param>
        /// <param name="arrParamValue">Array of Values</param>
        /// <returns></returns>
        public static DataSet SelectAll(string[] arrParamName, object[] arrParamValue)
        {
            DataSet ds = new DataSet();
            ds = SelectAllWithParameter(STORE_SELECT_ALL, arrParamName, arrParamValue);
            return ds;
        }

        /// Hàm này trả về danh sách các row theo điều kiện đầu vào
        /// </summary>
        /// <param name="arrParamName">Array of Parameters</param>
        /// <param name="arrParamValue">Array of Values</param>
        /// <returns></returns>
        public static DataSet GetAllPartInfo(string[] arrParamName, object[] arrParamValue)
        {
            DataSet ds = new DataSet();
            ds = SelectAllWithParameter(STORE_SELECT_DISTANCELOG, arrParamName, arrParamValue);
            return ds;
        }

        /// <summary>
        /// Hàm này trả về total row theo điều kiện đầu vào
        /// </summary>
        /// <param name="arrParamName">Array of Parameters</param>
        /// <param name="arrParamValue">Array of Values</param>
        /// <returns></returns>
        public static DataSet GetTotalGetAllPartInfo(string[] arrParamName, object[] arrParamValue)
        {
            DataSet ds = new DataSet();
            ds = SelectAllWithParameter(STORE_SELECT_DISTANCELOG_COUNT, arrParamName, arrParamValue);
            return ds;
        }

        /// <summary>
        /// Hàm này trả về total row theo điều kiện đầu vào
        /// </summary>
        /// <param name="arrParamName">Array of Parameters</param>
        /// <param name="arrParamValue">Array of Values</param>
        /// <returns></returns>
        public static DataSet GetAllPartInfoReport(string[] arrParamName, object[] arrParamValue)
        {
            DataSet ds = new DataSet();
            ds = SelectAllWithParameter(STORE_SELECT_DISTANCELOG2, arrParamName, arrParamValue);
            return ds;
        }

        /// <summary>
        /// Hàm này trả về total row theo điều kiện đầu vào
        /// </summary>
        /// <param name="arrParamName">Array of Parameters</param>
        /// <param name="arrParamValue">Array of Values</param>
        /// <returns></returns>
        public static DataSet GetNextRecords(string[] arrParamName, object[] arrParamValue)
        {
            DataSet ds = new DataSet();
            ds = SelectAllWithParameter(STORE_SELECT_MAX_DISTANCELOG, arrParamName, arrParamValue);
            return ds;
        }

        /// <summary>
        /// Hàm này trả về total row theo điều kiện đầu vào
        /// </summary>
        /// <param name="arrParamName">Array of Parameters</param>
        /// <param name="arrParamValue">Array of Values</param>
        /// <returns></returns>
        public static DataSet GetTotalGetAllPartInfoReport(string[] arrParamName, object[] arrParamValue)
        {
            DataSet ds = new DataSet();
            ds = SelectAllWithParameter(STORE_SELECT_DISTANCELOG2_COUNT, arrParamName, arrParamValue);
            return ds;
        }
        #endregion
    }
}
